package com.flyqiu.flow.api.format;

import com.alibaba.fastjson2.JSONObject;

import java.nio.charset.StandardCharsets;

public interface IBpmnFormat {

    /**
     * 多个用英文逗号隔开
     *
     * @return
     */
    String formatType();

    /**
     * 转换成为 startBpmn配置
     *
     * @param data
     * @return
     */
    default JSONObject convertStartBpmn(String data) {
        return convertStartBpmn(data.getBytes(StandardCharsets.UTF_8));
    }

    JSONObject convertStartBpmn(byte[] bytes);

    /**
     * startBpmn转换成为目标类型
     *
     * @param jsonStr
     * @return
     */
    default String convertTargetFormat(String jsonStr) {
        byte[] jsonStrBytes = jsonStr.getBytes(StandardCharsets.UTF_8);
        byte[] bytes = convertTargetFormatByte(jsonStrBytes);
        return new String(bytes, StandardCharsets.UTF_8);
    }

    /**
     * startBpmn转换成为目标类型
     *
     * @param jsonStrBytes
     * @return
     */
    byte[] convertTargetFormatByte(byte[] jsonStrBytes);
}
